package com.itheima.api.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.vo.domain.AjaxResult;
import com.itheima.vo.domain.TableDataInfo;
import com.itheima.vo.dto.RoleDto;
import com.itheima.vo.pojo.UmsMenu;
import com.itheima.vo.pojo.UmsResource;
import com.itheima.vo.pojo.UmsRole;

import java.util.List;
import java.util.Map;

/**
 * 后台用户角色业务层接口
 */
public interface UmsRoleService extends IService<UmsRole> {


    /**
     * 给角色分配菜单
     * @param roleDto 封装角色id,菜单ids
     * @return 提示信息
     */
    AjaxResult allocMenu(RoleDto roleDto);

    /**
     *给角色分配资源
     * @param roleDto 封装角色id,资源ids
     * @return 提示信息
     */
    AjaxResult allocResource(RoleDto roleDto);

    /**
     * 批量删除角色
     * @param ids 角色id
     */
    void deleteRoles(List<Long> ids);

    /**
     * 根据角色名称分页获取角色列表
     * @param keyword  角色名称
     * @param pageNum  当前页码
     * @param pageSize  当前页条目数
     * @return  分页数据
     */
    TableDataInfo getRoleList(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 获取角色相关菜单
     * @param roleId 角色id
     * @return  菜单数据
     */
    List<UmsMenu> getRoleMenuList(Long roleId);

    /**
     *获取角色相关资源
     * @param roleId 角色id
     * @return 资源数据
     */
    List<UmsResource> getListResource(Long roleId);


    /**
     *获取当前登录用户角色,菜单
     * @param roleIds 当前登录用户角色id
     * @return  用户角色,用户菜单
     */
    Map<String, Object> getCurrentLoginMenus(List<Long> roleIds);
}
